char lon_hemi = wpt->longitude < 0 ? 'W' : 'E';
unsigned char lat_deg = fabs(wpt->latitude);
unsigned char lon_deg = fabs(wpt->longitude);
- unsigned int lat_min = rint((fabs(wpt->latitude) - lat_deg) * 60000);
- unsigned int lon_min = rint((fabs(wpt->longitude) - lon_deg) * 60000);
+ unsigned int lat_min = (fabs(wpt->latitude) - lat_deg) * 60000 + 0.500000000001;
+ unsigned int lon_min = (fabs(wpt->longitude) - lon_deg) * 60000 + 0.500000000001;
if (snprintf(str, 18, "%02u%05u%c%03u%05u%c",
lat_deg, lat_min, lat_hemi, lon_deg, lon_min, lon_hemi) != 17) {
B0419433040646S15036334EA0090300000\r
B0420133040794S15036367EA0089500000\r
B0420443040707S15036367EA0090300000\r
-B0421143040678S15036423EA0092200000\r
+B0421143040679S15036423EA0092200000\r
B0421443040658S15036414EA0091400000\r
B0422153040772S15036358EA0091900000\r
B0422453040722S15036423EA0096100000\r
<trkpt lat="-30.678450" lon="150.606117">
<time>2004-04-24T04:20:44Z</time>
</trkpt>
-<trkpt lat="-30.677967" lon="150.607050">
+<trkpt lat="-30.677983" lon="150.607050">
<time>2004-04-24T04:21:14Z</time>
</trkpt>
<trkpt lat="-30.677633" lon="150.606900">
B0419433040646S15036334EA0000000000\r
B0420133040794S15036367EA0000000000\r
B0420443040707S15036367EA0000000000\r
-B0421143040678S15036423EA0000000000\r
+B0421143040679S15036423EA0000000000\r
B0421443040658S15036414EA0000000000\r
B0422153040772S15036358EA0000000000\r
B0422453040722S15036423EA0000000000\r